﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BaseDatos;

namespace SCHD
{
    public partial class WFModulo_Edit : TDV.Controles.Base.WinForm.BaseForm_Tipo01
    {
        public WFModulo_Edit()
        {
            InitializeComponent();
        }
        
        private string tipo = "";
        private string codigo = "";
        private string nombre = "";
        private string descripcion = "";
        private string comando = "";
        private EModoformulario modo;
        private string codigoSistema = "";
        private string codigoModulo = "";
        private string flagpopup  ="";
        private string linea = "";
        private string orden = "";
        private string codform = "";
        public WFModulo_Edit(EModoformulario Modo,string Orden, string Codigo, string CodigoSistema,string CodigoModulo, string Nombre, string Descripcion, string Comando,string Flagpopup,string Linea,string Codform)
         :this()
        {
            //this.tipo = Tipo;
            this.codform = Codform;
            this.orden = Orden;
            this.modo = Modo;
            this.codigoSistema = CodigoSistema;
            this.codigoModulo = CodigoModulo;
            this.codigo = Codigo;
            this.nombre = Nombre;
            this.descripcion = Descripcion;
            this.comando = Comando;
            this.flagpopup = Flagpopup;
            this.linea = Linea;
        }

        protected void CargaCombo(string formulario,string sinform)
        {
            if (modo == EModoformulario.Insertar)
            {
                string SQL = " select codform,codform||' | '||nomform nombre " +
                             " from chdformularios  " +
                             " where codform not in (" + sinform + ")" +
                             " and flgeli='0'";
                DataSet ds = ConexionBaseDatos.Conexion.CrearDataSet(SQL, CommandType.Text);
                CboFormulario.ValueMember = "codform";
                CboFormulario.DisplayMember = "nombre";
                CboFormulario.DataSource = ds.Tables[0];
            }
            else
            {
                string SQL = " select codform,codform||' | '||nomform nombre " +
                             " from chdformularios  " +
                             " where upper(codform) = upper(nvl('" + formulario + "',codform)) " +
                             " and flgeli='0'";
                DataSet ds = ConexionBaseDatos.Conexion.CrearDataSet(SQL, CommandType.Text);
                CboFormulario.ValueMember = "codform";
                CboFormulario.DisplayMember = "nombre";
                CboFormulario.DataSource = ds.Tables[0];
            }
        }
        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            
        }

        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            try
            {

                if (ChkSeparadorLineal.Checked == true)
                {
                    linea = "1";
                }
                else
                {
                    linea = "0";
                }
                if (RdPrincipal.Checked == true)
                {   flagpopup = "D"; }
                else
                {   flagpopup = "P"; }

                string usr = Environment.UserName.ToUpper();
                string wks = Environment.MachineName.ToUpper();
                if (modo == EModoformulario.Insertar)
                {
                    string codsistema = CboSistema.SelectedValue.ToString();
                    string codigoModulo = CboModulo.SelectedValue.ToString();
                    string SQL2 = "" +
                        "insert into chdmodulos_opciones  (codigosistema, codigomodulo, codigoopcion, codigoopcionsup, orden, padpopup, flaglinea, fhcreacion, usuariocreacion, estacioncreacion, fhmodificacion, usuariomodificacion, estacionmodificacion, flageliminado, flagpadpopup)" +
                        "                          values ('" + codsistema + "','" + codigoModulo + "','"+CboFormulario.SelectedValue.ToString()+"','NET','"+TxtOrden.Text+"','1000','"+linea+"',sysdate,'"+usr+"','"+wks+"',sysdate,'"+usr+"','"+wks+"','0','"+flagpopup+"') ";
                    ConexionBaseDatos.Conexion.EjecutarComando(SQL2,CommandType.Text);

                }
                else
                { 
                    string SQL2 = "" +
                        " update chdmodulos_opciones set ORDEN = '" + TxtOrden.Text + "',FLAGLINEA = '" + linea + "',FLAGPADPOPUP = '" + flagpopup + "' where " +
                        " codigosistema = '" + codigoSistema + "' and codigomodulo = '" + codigoModulo + "' and codigoopcion = '" + CboFormulario.SelectedValue.ToString() + "' and flageliminado ='0'";
                    ConexionBaseDatos.Conexion.EjecutarComando(SQL2, CommandType.Text);

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            DialogResult = DialogResult.OK;
        }
        protected void CargaSistema(string codigo,string modulo)
        {
            string SQL = "select distinct gm.codigosistema from chdmodulos_opciones gm where gm.codigosistema =nvl('" + codigoSistema + "',gm.codigosistema) and gm.flageliminado = '0' ";
            DataSet dssis = ConexionBaseDatos.Conexion.CrearDataSet(SQL, CommandType.Text);
            if (dssis.Tables[0].Rows.Count > 0)
            {
                CboSistema.ValueMember = "codigosistema";
                CboSistema.DisplayMember = "codigosistema";
                CboSistema.DataSource = dssis.Tables[0];
                CargaModulo(CboSistema.SelectedValue.ToString(),modulo);
            }
        }
        protected void CargaModulo(string sistema,string codigo)
        {
            string SQL = "select distinct gm.codigomodulo from chdmodulos_opciones gm where gm.codigosistema =nvl('" + sistema + "',gm.codigosistema) and gm.codigomodulo = nvl('" + codigo + "',gm.codigomodulo) and gm.flageliminado = '0' ";
            DataSet dsmod = ConexionBaseDatos.Conexion.CrearDataSet(SQL, CommandType.Text);
            if (dsmod.Tables[0].Rows.Count > 0)
            {

                CboModulo.ValueMember = "codigomodulo";
                CboModulo.DisplayMember = "codigomodulo";
                CboModulo.DataSource = dsmod.Tables[0];
            }
        }
        protected void MenuPrincipal()
        {
            string SQL = " select padpopup,codigoopcion, (select nomform from chdformularios where codform = codigoopcion and flgeli= '0' ) nombre from chdmodulos_opciones " +
                         " where flagpadpopup = 'D' order by padpopup";
            DataSet ds = ConexionBaseDatos.Conexion.CrearDataSet(SQL,CommandType.Text);
            CboMenuPrincipal.ValueMember = "codigoopcion";
            CboMenuPrincipal.DisplayMember = "nombre";
            if (ds.Tables[0].Rows.Count > 0)
            {
                CboMenuPrincipal.DataSource = ds.Tables[0];
            }
        }
        private void WFFormularios_Edit_Load(object sender, EventArgs e)
        {
            MenuPrincipal();
            if (modo == EModoformulario.Insertar)
            {
                //Nuevo
                CargaCombo("", codform);
                this.Text = "Nueva Opción";
                CargaSistema("","");
                TxtOrden.Text = "0";
            }
            else
            {
                //Modificar
                CargaSistema(codigoSistema,codigoModulo);   
                this.Text = "Modificar Opción";
                TxtOrden.Text = orden;
                CboFormulario.Enabled = false;
                 string codform = "";
                    CargaCombo(codigo, codform);
                if (flagpopup == "D")
                {
                    RdPrincipal.Checked = true;
                }
                else
                {
                    RdSecundario.Checked = true;
                }
                if (linea == "0")
                {
                    ChkSeparadorLineal.Checked = false;
                }
                else
                {
                    ChkSeparadorLineal.Checked = true;
                }

            }

        }
    }
}
